home *** CD-ROM | disk | FTP | other *** search
- PROGRAM bbhmerge;
-
- USES
- DOS,
- bbdummy;
-
- VAR
- file_in_name : STRING[100];
- master_file_name : STRING[100];
- file_in : TEXT;
- master_file : TEXT;
-
- BEGIN;
-
- file_in_name := PARAMSTR(1);
- master_file_name := PARAMSTR(2);
-
- IF master_file_name = '' THEN
- master_file_name := 'HLOOKUP.BB';
-
- ASSIGN(msg1_file, msg1_name);
- ASSIGN(msg_file, msg_name);
-
- RESET (msg1_file);
-
- READ(msg1_file, msg1_buffer);
- IF msg1_buffer.msg_number <> 1 THEN
- BEGIN;
- WRITELN('Input file has a version number of ', msg1_buffer.msg_number);
- WRITELN('It should have a version number of 1');
- HALT;
- END;
-
- REWRITE(msg_file);
- FILLCHAR(msg_buffer, SIZEOF(msg_buffer), CHR(0));
- msg_buffer.msg_number := sys_version;
- WRITE(msg_file, msg_buffer);
-
- i := 1;
- last_msg_tens := 0;
- WHILE i < FILESIZE(msg1_file) DO
- BEGIN;
-
- j := i div 10;
- IF j > last_msg_tens THEN
- BEGIN;
- WRITELN('Processing record #', i);
- last_msg_tens := j;
- END;
-
- FILLCHAR(msg_buffer, SIZEOF(msg_buffer), CHR(0));
-
- INC(i);
- READ(msg1_file, msg1_buffer);
-
- WITH msg1_buffer DO
- BEGIN;
- msg_buffer.msg_number := msg_number;
- msg_buffer.msg_type := msg_type;
- msg_buffer.msg_flag := msg_flag;
- msg_buffer.msg_size := msg_size;
- msg_buffer.msg_to := msg_to;
- msg_buffer.msg_to_at := msg_to_at;
- msg_buffer.msg_from := msg_from;
- msg_buffer.msg_from_at := msg_from_at;
- msg_buffer.msg_dt_in := msg_dt_in;
- msg_buffer.msg_dt_orig := msg_dt_orig;
- msg_buffer.msg_no_orig := msg_no_orig;
- msg_buffer.msg_tread := msg_tread;
- msg_buffer.msg_bid := msg_bid;
- msg_buffer.msg_subj := msg_subj;
- END;
-
- WITH msg_buffer DO
- BEGIN;
- msg_flag := [];
-
- IF mf1_hold IN msg1_buffer.msg_flag THEN
- msg_flag := msg_flag + [mf_hold];
-
- IF mf1_read IN msg1_buffer.msg_flag THEN
- msg_flag := msg_flag + [mf_read];
-
- IF mf1_fwd IN msg1_buffer.msg_flag THEN
- msg_flag := msg_flag + [mf_fwd];
-
- IF mf1_fwd_select IN msg1_buffer.msg_flag THEN
- msg_flag := msg_flag + [mf_fwd_select];
-
- IF mf1_fwd_list IN msg1_buffer.msg_flag THEN
- msg_flag := msg_flag + [mf_fwd_list];
-
- IF mf1_old IN msg1_buffer.msg_flag THEN
- msg_flag := msg_flag + [mf_old];
-
- IF mf1_kill IN msg1_buffer.msg_flag THEN
- msg_flag := msg_flag + [mf_kill];
-
- IF mf1_bid_reject IN msg1_buffer.msg_flag THEN
- msg_flag := msg_flag + [mf_bid_reject];
-
- END;
-
- WRITE(msg_file, msg_buffer);
-
- IF mf_fwd_list IN msg_buffer.msg_flag THEN
- BEGIN;
-
- FILLCHAR(msg_buffer, SIZEOF(msg_buffer), CHR(0));
-
- INC(i);
- READ(msg1_file, msg1_buffer);
-
- WITH dis1_area^ DO
- BEGIN;
- j := msg_d_no;
- dis_area^.msg_d_no := j;
-
- FOR k := 1 TO j DO
- WITH msg_d_array[k] DO
- BEGIN;
-
- dis_area^.msg_d_array[k].msg_d_info := msg_d_info;
-
- dis_area^.msg_d_array[k].msg_d_flag := [];
- IF df1_fwd IN msg_d_flag THEN
- dis_area^.msg_d_array[k].msg_d_flag := [df_fwd];
- IF df1_fwd_reject IN msg_d_flag THEN
- dis_area^.msg_d_array[k].msg_d_flag := [df_fwd_reject];
-
- END;
-
- END;
-
- WRITE(msg_file, msg_buffer);
-
- END;
-
- END;
-
- CLOSE(msg1_file);
- CLOSE(msg_file);
-
- IF rename_it THEN
- BEGIN;
- RENAME(msg1_file, 'MSG.V1');
- RENAME(msg_file, 'MSG.BB');
- END;
-
- WRITELN('Conversion Done. ', i, ' records processed.');
-
- END.